package interfacedemo1;

public class Test {
    public static void main(String[] args) {
        //目标：接口案例的使用
        //1.定义学生类，创建学生对象，封装学生数据
        //2.准备学生数据，定义一个数组，存储学生数据
        Students[] allstudents = new Students[]{
                new Students("小张",'男',90),
                new Students("小雪",'女',80),
                new Students("小松",'男',70),
                new Students("小丽",'女',60),
                new Students("小七",'男',50)
        };

        //3.提供两种业务实现方案，支持灵活切换（解耦合）：面向接口编程
        //（1）定义一个接口：完成打印全班学生信息和打印平均分抽象方法 (DataInter)
        //（2）第一种实现类，实现接口：实现打印全班学生信息和打印平均分的功能 （DataInterImpl1）
        //（3）第二种实现类，实现接口：实现打印全班学生信息（男女人数），打印平均分（去掉最高分和最低分） (DataInterImpl2)

        DataInter di = new DataInterImpl2(allstudents);//只要改一个类，就实现了解耦合
        di.printAllScore();
        di.printAvgScore();
    }
}
